home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / slax / base / 006-devel.lzm / usr / include / kjs / completion.h next >
Encoding:
C/C++ Source or Header  |  2005-10-10  |  2.0 KB  |  70 lines

  1. // -*- c-basic-offset: 2 -*-
  2. /*
  3.  *  This file is part of the KDE libraries
  4.  *  Copyright (C) 1999-2001 Harri Porten (porten@kde.org)
  5.  *  Copyright (C) 2001 Peter Kelly (pmk@post.com)
  6.  *  Copyright (C) 2003 Apple Computer, Inc
  7.  *
  8.  *  This library is free software; you can redistribute it and/or
  9.  *  modify it under the terms of the GNU Library General Public
  10.  *  License as published by the Free Software Foundation; either
  11.  *  version 2 of the License, or (at your option) any later version.
  12.  *
  13.  *  This library is distributed in the hope that it will be useful,
  14.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16.  *  Library General Public License for more details.
  17.  *
  18.  *  You should have received a copy of the GNU Library General Public License
  19.  *  along with this library; see the file COPYING.LIB.  If not, write to
  20.  *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  21.  *  Boston, MA 02110-1301, USA.
  22.  *
  23.  */
  24.  
  25. #ifndef _KJS_COMPLETION_H_
  26. #define _KJS_COMPLETION_H_
  27.  
  28. #include "identifier.h"
  29. #include "value.h"
  30.  
  31. namespace KJS {
  32.  
  33.   /**
  34.    * Completion types.
  35.    */
  36.   enum ComplType { Normal, Break, Continue, ReturnValue, Throw };
  37.  
  38.   /**
  39.    * Completion objects are used to convey the return status and value
  40.    * from functions.
  41.    *
  42.    * See FunctionImp::execute()
  43.    *
  44.    * @see FunctionImp
  45.    *
  46.    * @short Handle for a Completion type.
  47.    */
  48. // delme
  49.   class KJS_EXPORT Completion : public Value {
  50. // fixme
  51. /*   class Completion : private Value { */
  52.   public:
  53.     Completion(ComplType c = Normal, const Value& v = Value(),
  54.                const Identifier &t = Identifier::null())
  55.         : comp(c), val(v), tar(t) { }
  56.  
  57.     ComplType complType() const { return comp; }
  58.     Value value() const { return val; }
  59.     Identifier target() const { return tar; }
  60.     bool isValueCompletion() const { return val.isValid(); }
  61.   private:
  62.     ComplType comp;
  63.     Value val;
  64.     Identifier tar;
  65.   };
  66.  
  67. }
  68.  
  69. #endif 
  70.